A conventional network traditionally includes a variety of hardware devices, such as routers, switches, and hubs, where each device provides a heterogeneous array of services. Router functionality, for example, may include various routing protocols, quality of service (QoS) services, and discovery services. These services are typically provided through an operating system executed on the router. In some routers, the operating system is monolithic and requires that each feature be statically linked and distributed as a new release of the operating system software. Minor changes made to the operating system in response to user demands can require redesign and rewriting of the entire program. Therefore, in order to add a new service and distribute it throughout the network, the operating system for each router must be recompiled to include the new service.